Padding Untuk LeftView atau RightView UITextField
Bila kita memberikan view untuk LeftView atau RightView pada UITextField, kita akan lihat bahwa view tersebut terlalu mepet ke pinggir UITextField.
1 | txOrgAirport.leftView = UIImageView(image: #imageLiteral(resourceName: "icon_location")) |
![too close](/images/left view that too close too edge.png)
beberapa pendekatan
Saya udah coba memberikan auto layout namun tak berhasil.
Saya juga mencoba mengedit iconnya di GIMP dan memberikan padding manual :(. Walaupun ini berhasil tapi sangat terasa melelahkan bila banyak UITextField yang perlu diberi icon.
Saya juga mencoba mengubah x pada frame view nya, seperti berikut:
1 | let iconView = UIImageView(frame: CGRect(x: 8, y: 0, width: 20, height: 20)) |
Tetap tidak berhasil.
Yess!
Lalu saya coba membungkus ImageView di dalam View biasa. View yang diluar saya berikan width lebih lebar sesuai jumlah padding yang diinginkan. Setelah itu x dari ImageView itu saya buat agar sesuai jumlah paddingnya.
1 | let outerView = UIView(frame: CGRect(x: 0, y: 0, width: size+padding, height: size) ) |
Nah yang ini baru bisa!
Supaya lebih mudah digunakan, mari kita taro dalam extension.
Demen banget saya sama fitur extension di Swift ini :-)
1 | extension UITextField { |
Cara pake
anggap aja saya punya outlet namanya txOrigin ya, tipenya UITextField
1 | txOrigin.setLeftIcon(icon_location) |
Khasiat
RightView?
Mudah. Tinggal diganti aja left nya jadi right.
Demikian
Lihat di stackoverflow
semoga berguna ya. Thanks!
Bye!